package com.tom.architect;

import android.app.Activity;
import android.app.Application;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.tom.architect.day01.simple5.HttpUtils;
import com.tom.architect.day01.simple5.OkHttpRequest;
import com.tom.architect.day01.simple5.PreferencesUtil;
import com.tom.architect.day10.simple2.PreferencesUtils;

import org.xutils.BuildConfig;
import org.xutils.x;

/**
 * Created by Tom on 2023/12/05 17:19.
 */
public class BaseApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        PreferencesUtil.getInstance().init(this);
        x.Ext.init(this);
        x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.
         // HttpUtils.initHttpRequest(new XUtilsRequest());
        HttpUtils.initHttpRequest(new OkHttpRequest()); // 全局配置，换网络框架。
        PreferencesUtils.getInstance().init(this);

        // 面相切面。AOP
        // Activity生命周期的监听。所有activity都会进入下面的回调。
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
                // 统一添加activity管理，也可以在BaseActivity中。
                // 第三方的，换肤功能。
            }

            @Override
            public void onActivityStarted(@NonNull Activity activity) {

            }

            @Override
            public void onActivityResumed(@NonNull Activity activity) {

            }

            @Override
            public void onActivityPaused(@NonNull Activity activity) {

            }

            @Override
            public void onActivityStopped(@NonNull Activity activity) {

            }

            @Override
            public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {

            }

            @Override
            public void onActivityDestroyed(@NonNull Activity activity) {
                // 移除，避免内存溢出。

            }
        });
    }
}
